

class {{#if this.classname}}{{classname}}{{else}}{{#if nameInSnakeCase}}{{name}}{{else}}{{baseName}}{{/if}}{{/if}}(
{{#if getIsAnyType}}
    {{#if getFormat}}
    {{> model_templates/format_base }}
    {{/if}}
    {{#if composedSchemas}}
    schemas.ComposedSchema,
    {{else}}
    schemas.AnyTypeSchema,
    {{/if}}
{{else}}
    {{#if composedSchemas}}
    schemas.ComposedBase,
    {{/if}}
    {{#if isEnum}}
    schemas.EnumBase,
    {{/if}}
    {{> model_templates/xbase_schema }}
{{/if}}
):
{{#if this.classname}}
    """
{{> partial_class_header}}
{{#if description}}

    {{{unescapedDescription}}}
{{/if}}
    """
{{/if}}
{{#or hasValidation composedSchemas getItems additionalProperties getRequiredVarsMap getHasDiscriminatorWithNonEmptyMapping vars getFormat isEnum}}


    class MetaOapg:
{{#if getFormat}}
        format = '{{getFormat}}'
{{/if}}
{{#if isEnum}}
{{#with allowableValues}}
        enum_value_to_name = {
{{#each enumVars}}
            {{{value}}}: "{{name}}",
{{/each}}
        }
{{/with}}
{{/if}}
{{#if getItems}}
        {{> model_templates/list_partial }}
{{/if}}
{{#or additionalProperties getRequiredVarsMap getHasDiscriminatorWithNonEmptyMapping vars}}
        {{> model_templates/dict_partial }}
{{/or}}
{{#unless isStub}}
{{#if hasValidation}}
        {{> model_templates/validations }}
{{/if}}
{{/unless}}
{{#if composedSchemas}}
        {{> model_templates/composed_schemas }}
{{/if}}
{{/or}}
{{#if isEnum}}
    {{> model_templates/enums }}
{{/if}}

    {{> model_templates/property_type_hints }}

{{#if additionalProperties}}
    {{> model_templates/new }}
{{else}}
    {{> model_templates/new addPropsUnset=true }}
{{/if}}
